﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:AvalonEdit="clr-namespace:ICSharpCode.AvalonEdit;assembly=ICSharpCode.AvalonEdit"
	xmlns:editing="clr-namespace:ICSharpCode.AvalonEdit.Editing;assembly=ICSharpCode.AvalonEdit"
    xmlns:cc="clr-namespace:WPF.TestEditor.Controls.AvalonTextEditor"                    
>
    
    <Style x:Key="TestTextEditor" TargetType="AvalonEdit:TextEditor">
        <Setter Property="Foreground" Value="{DynamicResource HoverForegroundColorBrush}" />
        <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
        <Setter Property="LineNumbersForeground" Value="{DynamicResource AccentColorBrush}"/>        
        <Setter Property="FlowDirection" Value="LeftToRight"/>
        <Setter Property="WordWrap" Value="False"/>
        <Setter Property="HorizontalScrollBarVisibility" Value="Auto"/>
        <Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
        <!-- AvalonEdit does not support RTL, so ensure we use LTR by default -->
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type AvalonEdit:TextEditor}">
                    <ScrollViewer
						Focusable="False"
						Name="PART_ScrollViewer"
						CanContentScroll="True"
						VerticalScrollBarVisibility="{TemplateBinding VerticalScrollBarVisibility}"
						HorizontalScrollBarVisibility="{TemplateBinding HorizontalScrollBarVisibility}"
						Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TextArea}"
						VerticalContentAlignment="Top"
						HorizontalContentAlignment="Left"
						Background="{TemplateBinding Background}"
						Padding="{TemplateBinding Padding}"
						BorderBrush="{TemplateBinding BorderBrush}"
						BorderThickness="{TemplateBinding BorderThickness}"                        
					/>
                    <ControlTemplate.Triggers>
                        <Trigger Property="WordWrap" Value="True">
                            <Setter TargetName="PART_ScrollViewer" Property="HorizontalScrollBarVisibility" Value="Disabled" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style TargetType="{x:Type editing:TextArea}">
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="SelectionBrush">
            <Setter.Value>
                <SolidColorBrush Color="{DynamicResource {x:Static SystemColors.HighlightColorKey}}" Opacity="0.7"/>
            </Setter.Value>
        </Setter>
        <Setter Property="SelectionBorder">
            <Setter.Value>
                <Pen Brush="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" Thickness="1"/>
            </Setter.Value>
        </Setter>
        <Setter Property="SelectionForeground" Value="{DynamicResource HoverForegroundColorBrush}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type editing:TextArea}">
                    <DockPanel Focusable="False" Margin="10 10 10 10">
                        <ItemsControl DockPanel.Dock="Left" Focusable="False" ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=LeftMargins}">
                            <ItemsControl.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <StackPanel Orientation="Horizontal" />
                                </ItemsPanelTemplate>
                            </ItemsControl.ItemsPanel>
                        </ItemsControl>
                        <ContentPresenter Panel.ZIndex="-1" Focusable="False" Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TextView}"/>
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style TargetType="{x:Type ListBoxItem}" x:Key="CompletionListBoxItem">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ListBoxItem}">
                    <Border Name="Bd"
					        Background="{TemplateBinding Background}"
					        BorderBrush="{TemplateBinding BorderBrush}"
					        BorderThickness="{TemplateBinding BorderThickness}"
					        Padding="{TemplateBinding Padding}"
					        SnapsToDevicePixels="true">
                        <ContentPresenter
							HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
							VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
							SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                    </Border>
                    <!-- Simplified triggers:
 						we don't want a gray selection background when the ListBox doesn't have focus
					-->
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="true">
                            <Setter Property="Background"
							        Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
                            <Setter Property="Foreground"
							        Value="{DynamicResource HoverForegroundColorBrush}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>